# IT Planet - if...else

**СПБ ГБ ПОУ «Радиотехнический колледж»**

**Разработчик:** Башаров Степан Антонович
**tg:** https://t.me/pylango

## Стек технологий

- Python 3.10
- FastAPI
- Tortoise ORM
- Pytest
- Pydantic
- PostgreSQL
- uvicorn

## Сборка проекта

Для успешного запуска проекта необходимо заполнить файл `config.yaml`.

Пример:
```yaml
server: # настройки сервиса
  host: "0.0.0.0" # ip для разветки приложения
  port: 8080 # порт на котором будет развенут сервис
  reload: true # перезапуск сервиса 

database: # настройки внутреннего подключения к бд
  host: "db" # адрес (в нашем случае docker)
  port: 5432 # порт 
  db_name: weather # имя базы
  db_user: postgres # пользователь
  db_password: postgres # пароль

aerich: # настройки внешнего подключения (миграции, тесты)
  host: "127.0.0.1" # ip
  port: 5432 # порт
  db_name: weather # имя базы
  db_user: postgres # пользователь
  db_password: postgres # пароль
```

Путь к config.yaml указывается в app/settings/constants.py

```python
CONFIG_PATH = "./config.yaml"
```
По умолчанию он расположен в корне.

Для запуска проекта из корневой директории выполните следующую команду:

```bash
docker-compose up --build
```

## Тестирование

Для запуска тестов требуется запущенный контейнер с проектом.

Установите зависимости, указанные в файле `requirements.txt`:

```bash
pip install -r requirements.txt
```

Запустите тесты с помощью pytest:

```bash
pytest tests
```

## Документация 

Подробная документация методов находиться в docs/openapi.yaml, а так же по адресу http://127.0.0.1:8080/docs (контейнер должен быть запущен)

---

# Update
Frontend для работы с методами расположен по следующим адресам

### Регистрация
GET /registration
### Login
GET /login
### Accounts
GET /accounts
### Region
GET /region
### Region Types
GET /region/types
### Weather 
GET /region/weather/weather-front
### Forecast
GET /region/weather/forecast/front